package com.cw.service;

import com.cw.dto.DeptUsedBedReportDTO;
import com.cw.dto.ManageBedCalculationDTO;
import com.cw.dto.WorkSumReportCondition;
import com.cw.dto.WorkSumReportDTO;
import com.cw.request.DataSourceRequest;
import com.github.pagehelper.PageInfo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 报表服务类
 * @author: ly
 * @date: 2021/06/04 14:37
 **/
public interface ReportService {

    /**
     * 分页查询集管床位计算统计列表
     * @param dataSourceRequest 查询条件
     * @author ly
     * @date 2021/6/4 14:38
     * @return java.util.List<com.cw.dto.ManageBedCalculationDTO>
     */
    PageInfo<ManageBedCalculationDTO> getManageBedCalculationDTO(DataSourceRequest dataSourceRequest);
    /**
     * 下载集管床位计算统计excel
     * @param dataSourceRequest 查询条件
     * @param response 响应对象
     * @author ly
     * @date 2021/6/4 16:24
     */
    void getManageBedCalculationDtoExcel(DataSourceRequest dataSourceRequest, HttpServletResponse response) throws IOException;

    /**
     * 个人工作量统计
     * @param condition 查询条件
     * @author ly
     * @date 2021/6/15 15:39
     * @return java.util.List<com.cw.dto.WorkSumReportDTO>
     */
    List<WorkSumReportDTO> getWorkSumReportDto(WorkSumReportCondition condition);

    /**
     * 个人工作量统计
     * @param condition 查询条件
     * @author ly
     * @date 2021/6/16 10:19
     */
    void getWorkSumReportDtoExcel(WorkSumReportCondition condition) throws IOException;

    /**
     * 获取科室床位预约统计报表饼图数据
     * @param condition 查询条件
     * @author ly
     * @date 2021/6/18 9:21
     * @return java.util.List<com.cw.dto.DeptUsedBedReportDTO>
     */
    List<DeptUsedBedReportDTO> getDeptUsedBedReportDTO(WorkSumReportCondition condition);

    /**
     * 获取科室床位预约统计报表饼图数据-导出
     * @param condition 查询条件
     * @author ly
     * @date 2021/6/18 10:30
     */
    void getDeptUsedBedReportDtoExcel(WorkSumReportCondition condition) throws IOException;


//    List<> getBedOccupancyRateForDay(WorkSumReportCondition condition);
}
